package alg1_baseModel;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;

import java.util.Arrays;

//编写一段程序，从标准输入按行读取数据，其中每行都包含一个名字和两个整数。然后用printf()打印一张表格，每行的若干列数据包括名字、两个整数和第一个整数除以第二个整数的结果，精确到小数点后三位。可以用这种程序将棒球球手的击球命中率或者学生的考试分数制成表格。
public class Test1_1_21 {
    public static void main(String[] args) {
        int rows = 0;
        Object[][] item = null;
        Object[][] newItem = null;
        String name = null;
        while(!(name = StdIn.readString()).equals("end")){
            int number1 = StdIn.readInt();
            int number2 = StdIn.readInt();
            rows++;
            if (item != null) {
                Object[][] old = item;
                newItem = new Object[rows][];
                for (int i = 0; i < rows ; i++) {
                    newItem[i] = new Object[4];
                }
                for (int i = 0; i < rows - 1; i++) {
                    for (int j = 0; j < 4; j++) {
                        newItem[i][j] = old[i][j];
                    }
                }
                newItem[rows - 1][0] = name;
                newItem[rows - 1][1] = number1;
                newItem[rows - 1][2] = number2;
                newItem[rows - 1][3] = String.format("%.3f",(double)number1 / number2);
                item = newItem;
            }else {
                item = new Object[1][];
                item[0] = new Object[4];
                item[0][0] = name;
                item[0][1] = number1;
                item[0][2] = number2;
                item[0][3] = String.format("%.3f",(double)number1 / number2);
                newItem = item;
            }
        }
        for (int i = 0; i < newItem.length; i++) {
            Object[] array = newItem[i];
            StdOut.println(Arrays.toString(array));
        }
    }
}
